Problem s osetrenim chyby pri tisku v Sinea 2000

Otázka od: Pawell None

5. 9. 2002 0:05

Zdravim,
mam problem s osetrenim chyby pri tisku

//vytvorim si sestavu...
Sestava := TSestava.Create(nil);
//nastavim si vse potrebne a vyberu tiskarnu ...
Printer.PrinterIndex := cmbTiskarna.ItemIndex;
//a nakonec tisknu
Print;

Vsechno funguje do okamziku, nez se pokusim tisknout na neplatnou tiskarnu
(napr. tisk na sitovou tiskarnu, kdyz jsem odpojen od site). To dojde k
vyjimce "Print selected is not valid".

Tak jsem udelal malou upravu:

try
  Print;
except
  //rekni to uzivateli
end;
//pokud se nepodaril tisk, uzivatel to muze zkustit znovu

Tim se mi podari odchytit vyjimku, ale zustane mi viset dialog s textem
"Odesilam data do stiskarny" dokud nezavru form, ze ktereho jsem volal
Print.

Poradite, prosim, jak korektne osetrovat chyby pri tisku, resp. jak se
zbavit toho dialogu?

Zkousel jsem take pouzit "OnError", ale do toho se mi to nikdo nedostalo.

Kdyz to samé udelám pro preview, tak se mi nepodarí zachytit ani tu vyjímku.

diky moc predem za kazdy podnet
preji hezky den
Pavel Blahovec

Odpovedá: Vaclav Krmela

5. 9. 2002 8:51

> From: Pawell None
>
> mam problem s osetrenim chyby pri tisku
>
> Vsechno funguje do okamziku, nez se pokusim tisknout na
> neplatnou tiskarnu
> (napr. tisk na sitovou tiskarnu, kdyz jsem odpojen od site).
> To dojde k vyjimce "Print selected is not valid".
>
> try
> Print;
> except
> //rekni to uzivateli
> end;
> //pokud se nepodaril tisk, uzivatel to muze zkustit znovu
>
> Tim se mi podari odchytit vyjimku, ale zustane mi viset
> dialog s textem
> "Odesilam data do stiskarny" dokud nezavru form,
> ze ktereho jsem volal Print.

To, ze zustane viset okno je problem Siney.
V pristim update jiz snad bude odstranen.

Jinak to lze prozatim osetrit takto:

  try
    if Printer.Handle <> 0 then
      Sestava.Print;
  except
   //rekni to uzivateli
  end;

>
> Kdyz to samé udelám pro preview, tak se mi
> nepodarí zachytit ani tu vyjímku.

Preview nema s tiskarnou nic spolecneho.
Preview zobrazi sestavu na monitoru
a je mu uplne jedno, kolik, jakych a zda vubec
jsou v systemu nejake tiskarny.
Tady neni zadny duvod, aby k nejake vyjimce
s neplatnou tiskarnou vubec doslo.

Vaclav Krmela